home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 8 / Mac Magazin and MacEasy Magazine CD - Issue 08.iso / Sharewarebibliothek / Utilities / File Safari ƒ / Release Note.c < prev   
Text File  |  1995-03-09  |  15KB  |  280 lines

  1. /*
  2.  
  3. Changes in 1.1b1 — 95\02\24:
  4.   —Added Detailed Rez Search option to Search Options menu. What this does
  5.    is search each rez fork rez–by–rez instead of reading the entire rez
  6.    fork block into a single chunk. This allows the rez type and ID to be
  7.    seen in the File Info popup seen when the mouse is held down on a match.
  8.   —Added key equivs for the results scrollbar:
  9.      Command–downArrow…………………………1 line down
  10.      Command–upArrow………………………………1 line up
  11.      Command–Option–downArrow………1 page down
  12.      Command–Option–upArrow……………1 page up
  13.   —Added option for searching/skipping nested folders.
  14.   —Reworked Search Options into a dialog instead of the popup menu. This
  15.    makes it a lot easier to set a bunch of options at once instead of
  16.    having to aim/click/move/release a bunch of times.
  17.   —Did away with the secret Skip Rez Header option. It will always be
  18.    searched when not using the Detailed Rez Search option.
  19.   —Added check to see if a dir has already been added to the Recent Search
  20.    Dirs menu so it doesn’t show up more than once.
  21.   —Fixed an old #define that set the pref file’s creator to the wrong
  22.    thing when it’s created.
  23.   —Added Search Type popup menu to main window. This gives you three options:
  24.      •New Search: Clears the previous search results and searches as normal.
  25.      •Append Search: Appends the next search results to the existing search
  26.       results.
  27.      •Search Existing: Searches only the files listed in the current search
  28.       results list (old results cleared first).
  29.   —Fixed a temp memory bug (not MY bug, but Apple’s:) where the actual amount
  30.    of available free temp memory was NOT what was returned from TempMaxMem
  31.    when called *only for the very first time* in the program (7.1, SU3.0).
  32.   —Fixed a bug in searchInFile where it would skip searching the rest of a
  33.    file if First Occurrence Only was turned on. Oops.
  34.   —Fixed © date in How To… and about box.
  35.  
  36.  
  37. Release of 1.0.3 — 95\02\23.
  38.  
  39.  
  40. Changes in 1.0.3b1 — 95\02\13:
  41.   —Added Recent Search Dirs menu item. Any search dir used from the Other…
  42.    button or by drag & dropping a volume will be added to this submenu and
  43.    will stick around until the program quits. { Requested by MetaTheory. }
  44.   —The main window is now wider (640), unless the screen is <640 wide, then
  45.    it’s the old width. { Requested by MetaTheory. }
  46.   —Had bug report { Per.Mildner } of address 0 being dereferenced in
  47.    ABOUTVERSUSERITEM when it called pstrcpy, but I couldn’t find anything
  48.    wrong, unless the handle returned from GetResource was NULL. So I put in
  49.    a check for that and passed the shortVers directly to TextBox instead of
  50.    pstrcpy'ing it to another variable, which was senseless to begin with.
  51.   —Fixed a Balloon Help typo.
  52.   —Had a request to add each file’s full pathname to the export file. No,
  53.    it wouldn’t take much to do it, but it would make the export file a lot
  54.    harder to read, and the existing code is very clean. And since this is
  55.    the only request for this feature, I’m opting not to do it.
  56.   —No events could be processed after choosing “Hide File Safari” from the
  57.    app menu after initiating a search. Setting the doesActivateOnFGSwitch
  58.    bit in the ‘SIZE’ fixed it (but doesn’t make sense).
  59.   —Added Command–S key equiv to Get Other Search Dir… custom get file
  60.    box to select the Select button.
  61.  
  62.  
  63. Changes in 1.0.2 — 95\02\10 (daytime, normal person hours):
  64.   —Found and fixed a bug where FS would crash after sending the ÆOpenDoc
  65.    to the editor (in this case, MuffEdit) and THEN tried opening the file
  66.    to find the line number, even though MuffEdit doesn’t support goto–line
  67.    Æ’s. Now I get the line number *before* sending the openDoc Æ and then
  68.    check to see if the editor handles goto–line Æ’s and only send it if
  69.    it does. Cripes, I hate finding these things after distributing an app
  70.    all over the damned world. I think I’ll wait a few days before releasing
  71.    1.0.2, just in case more bugs are found, but of course there aren’t any
  72.    more because I’m so goll durn optimistic! :) { Bug found by MetaTheory. }
  73.  
  74.  
  75. Changes in 1.0.1 — 95\02\10:
  76.   —Fixed bug where I tried to get the line number of a match when it was
  77.    in a rez fork. Now the “Line Number” menu item is disabled and says
  78.    “N/A” when a rez file match is clicked on. Yes, I ended that sentence
  79.    with a preposition.
  80.   —Added more tests if a file was found during the search but can’t be
  81.    found when clicked on.
  82.  
  83.  
  84. Changes in 1.0 — 95\01\26 — final release:
  85.   —Search buttons weren’t being updated when user did a Paste.
  86.  
  87.  
  88. Changes in 1.0b6 — 95\01\15:
  89.   —I was messing around with passing NULL in some parms of GetDialogItem.
  90.    This worked fine on my IIci with 7.1, but I had a report from MetaTheory
  91.    who was running EvenBetterBusError that I was writing to NIL. Thanks to
  92.    that EBBE, I found the problem was me passing NULL to GDI. Fixed that.
  93.    Also found a few others.
  94.   —Added a pref to save the position of the window.
  95.   —Fixed something in TE32K where the top of the results text would be
  96.    scrolled off the bottom of the window while lines of text were being
  97.    added during a search.
  98.   —Fixed handling of the results scrollbar thumb so the correct value is
  99.    calculated as a long instead of a short.
  100.   —Added extra call to smallEvent to catch aborts earlier.
  101.   —Forgot to SetPort the about box.
  102.   —Fixed bug in findAppInDesktops where an entry was found in the Desktop
  103.    database, but the file no longer existed on the volume, so it skips that
  104.    volume and searches the next.
  105.   —Added code to send the appropriate goto–line Apple® Event to the text
  106.    editor so the double–clicked line will be brought into view. So far the
  107.    only goto–line Æ’s implemented are for 68k and PPC MW C/C++ and Pascal
  108.    and BBEdit (the only editors I could find around here that support
  109.    goto–line Æ’s).
  110.  
  111.  
  112. Changes in 1.0b5 — 94\12\30:
  113.   —If the openDoc Æ can’t be sent to an application for some reason, I now
  114.    ask the user if they want to use their TEXT Editor to view the file.
  115.   —Added Hex Search button.
  116.   —Added 1st Occurance Only option.
  117.   —Amalgamated all search options into a single Options popup menu in the
  118.    main window to declunkify the interface.
  119.   —Changed flags pref into a different format that’s more easily updated in
  120.    future versions (a long instead of a bunch of Booleans). Also, old Pref’s
  121.    files won’t lose the user’s settings when it’s updated to a new version.
  122.    And it’s smaller.
  123.   —Added test for files not being able to be opened and ask user if they want
  124.    to skip the file and continue or not.
  125.      —Added a beep when the search has completed.
  126.      —Added pref for keeping the last Search Dir chosen from the popup menu or
  127.    if the user selects Add Current Search Dir. Search Dir’s chosen by any
  128.    other means won’t be remembered. I prefer doing it this way rather than
  129.    saving yet another alias.
  130.      —Changed the way I keep track of found files. Used to just keep the parID
  131.    and name. Now I just keep the parID, index, and vRefNum which takes less
  132.    memory and so I can…
  133.      —Now show the full pathname, type, and creator of clicked–on files in the
  134.    results list. Also changed the font of the file name item to Geneva
  135.       because Monaco was too long for deep folders. This is only an Str255, but
  136.    it seems to be long enough even for deep folders on CW/4.
  137.   —Added secret option for power users to skip or include searching the
  138.    resource header, data reserved for system, and application data portions
  139.    of resource files. I was finding some sort of left over garbage in the
  140.    rez fork of an alias file (in the reserved system data area), so I
  141.    decided to skip searching the entire area. But what if some app stores
  142.    data in the application data area, such as passwords and stuff? This is
  143.    why I made it a secret option. This file will be the only place it will
  144.    be mentioned. So only people who read this file will know about it, or
  145.    people who happen to hold down the Option key while clicking in the
  146.    Search Options popup. (Hint; that's how you turn the option on and
  147.    off.:) It’s default state is on, rez header+ skipped.
  148.   —Changed the way the main window works. Added a little triangle PICT item
  149.    that toggles the search result items. I did this for a couple reasons:
  150.    ◊Faster window updating if File Safari is kept hanging around while
  151.     using other app’s. Just hide the result items when not in use.
  152.    ◊Thinking about adding boxes for the clicked–on file’s Type, Creator,
  153.     and the offset of the match in the file. These extra items would make
  154.     more clutter, which would make reason #1 more attractive.
  155.    ◊I’ve never used AppendDITL before, so it was good practice. :)
  156.  —Added a total files searched item.
  157.  —Replaced all calls to CallUserItemProc with the actual function calls
  158.   they contain. (New habits are hard to break.;)
  159.  —Fixed some things in the search code. Tested it with a file of buffSize
  160.   length. It now finds only one match if the search string is right at the
  161.   end of the buffer. I was also doing the same long calculation twice, so
  162.   I replaced that with a local var (but CodeWarrior was probably optimizing
  163.   that on its own).
  164.  —Instead of adding the Type, Creator, and offset boxes, I added a popup
  165.   that shows this into for each match. Just click and hold on a match for
  166.   your system’s double–click time and the popup will appear.
  167.  —Got CW5 in the mail! Only had to make one change!
  168.  —Made full use of CW5’s new PPC optimization. Too bad I can’t tell the
  169.   difference. :/ (Somebody give me an 8100 or I’ll puke all over my code.)
  170.  —Started using temp memory for the search buffers if enough is available.
  171.  —Changed searchInFile’s inner loop to be more efficient.
  172.  —Made my own Munger function to handle both normal and case–ignored
  173.   searches, using a lookup table for case–ignored conversion. It’s 67%
  174.   faster than Munger normally and 54% faster than my use of Munger when
  175.   ignoring case. A full case–sensitive search of File Safari’s project
  176.   folder took an average of 4.1 seconds with Munger and an average of 2.8
  177.   seconds with myMunger. Now I don’t need two buffers for case–ignored
  178.   searches because I don’t have to copy an upper–case version of the buffer.
  179.  —Added Ignore Diacriticals option in Search Options popup menu. Be careful
  180.   when using the Hex Search button as the Ignore Case and Ignore
  181.   Diacriticals options *still* apply to your resulting hex string. E.g.:
  182.   Search String "0x61" ('a') will turn into "0x41" ('A') if Ignore Case is
  183.   turned on.
  184.  —When a search is started, disabled Hex Search button and changed Search
  185.   button to Stop so it’s more obvious that the search can be stopped.
  186.   Clicking the Stop button, hitting Return, Enter, Escape, or Command–.
  187.   all stop the search. Also disabled my menus and handled mouseDown’s in
  188.   menubar and drag region.
  189.  —I was comparing File Safari’s search results to that of Search Files when
  190.   I noticed FS found more matches than SF with the same options turned on.
  191.   So I thought it’d be nice to have a Save Results function so I could
  192.   compare FS’s to SF’s. This is now an item in the File menu. BTW, FS’s
  193.   and SF’s search times are almost identical in my tests. FS took 1 second
  194.   longer to search one of my hard drives with Ignore Case and TEXT Files
  195.   Only turned on.
  196.  —Found Search Files’ problem; it doesn’t find a match if the search string
  197.   is butted up against the end of the file. File Safari does this correctly.
  198.   Nyah. :) It also searches folders in a more intelligent manner.
  199.  
  200.  
  201. Changes in 1.0b4 — 94\12\28:
  202.   —Fixed bug where Resource Editor menu item string would contain
  203.    garbage until a rez editor was chosen.
  204.   —Fixed bug that would set the Resource Editor string to empty
  205.    if the user chose Choose resource editor… and clicked Cancel.
  206.   —Added a default TEXT File Editor that can be used to view all
  207.    TEXT files when double–clicked. It’s chosen like the Resource
  208.    Editor and has a menu item to turn on/off using it.
  209.   —Improved pref loading scheme so new prefs will be created if
  210.    they aren’t found, and old prefs that aren’t the current size
  211.    will be deleted and re–created.
  212.   —Changed all menu item strings to title case.
  213.   —The window is now dragable. Ooops. :)
  214.   —If the current Search Dir is one from the popup, and the user
  215.    deletes that item from the popup, the Add Current Search Dir
  216.    menu item is re–enabled.
  217.   —If the Option key is held while double–clicking on a match in
  218.    the results, the user’s TEXT editor will be used to open the
  219.    file, no matter what type the file is or which fork the match
  220.    was found in. This is a power user feature, and is especially
  221.    useful for people who have Really Cool App’s like MuffEdit that
  222.    can open *any* file’s data fork and also snoop in the rez fork.
  223.   —Got rid of desk scrap purging if the scrap was not TEXT data.
  224.    Stopped bad practice of doing ZeroScrap and TEToScrap when
  225.    switching to the background.
  226.  
  227.  
  228. Changes in 1.0b3 — 94\12\21:
  229.   —Added drag & drop of folders and disks to set the Search Dir.
  230.   —Added openDoc and quitApp Æ’s.
  231.   —Changed the name of the main window to File Safari.
  232.   —Fixed more Balloon Help.
  233.   —Fixed some incompatibilities with Norton Directory Assistance.
  234.    Hopefully this will fix the problems with SuperBoomerang too.
  235.    I don’t know why these companies can’t write stuff that doesn’t
  236.    interfere with standard Apple routines. If you’re gonna change
  237.    the current dir, then tell the goddamn hook that you did so!
  238.    I also found that, if a button has been added to a CustomGetFile
  239.    box, and you SetDialogDefaultItem on it while the standard Open
  240.    button is disabled, NDA doesn’t know about it, but instead sends
  241.    an itemHit message of 0x1000 + the char number. Bad, bad, bad
  242.    programming style not to call the standard ModalDialog filter
  243.    when you mess with dialog events.
  244.   —It was reported that no matches are found on a PPC, even though
  245.    it’s searching through the correct files. I have no idea why
  246.    this wouldn’t work, unless Munger doesn’t work correctly on PPC’s.
  247.    I changed the FSRead/Munger buffer pointer to a handle just to
  248.    see if that has anything to do with it, which I really doubt.
  249.   —Added version number to About box.
  250.   —Improved finding a double–clicked file’s creator, launching it,
  251.    bringing it to the front, and sending the openDoc Æ.
  252.   —Implemented the resource editor stuff.
  253.   —Correctly enabled Add Current Search Dir popup menu item and
  254.    Search button when a folder/volume is drag & dropped onto File
  255.    Safari in the Finder.
  256.  
  257.  
  258. Changes in 1.0b2 — 94\12\16:
  259.   —Added current file pathname to main window while searching.
  260.   —Added Matches item in dialog.
  261.   —Fixed some Balloon Help.
  262.   —Added check for System 7.
  263.   —Added check for B&W and put up the B&W version of the About PICT.
  264.   —Added call to smallEvent at the end of the searchInFile loop so
  265.    we don’t have to wait as long to abort.
  266.   —Added SystemTask to smallEvent so some other stuff could process.
  267.   —After a search has completed, select the Search String text.
  268.   —Set the cursor to arrow when suspend/resume event is received.
  269.   —When clicking on an item in the result list, the file name is
  270.    shown.
  271.   —Progress information is shown while finding a double–clicked–on
  272.    file’s creator and process or app, and sending the AEOpenDoc.
  273.   —Fixed it so when the result list is clicked past the end of the
  274.    last line, it selects the last line.
  275.   
  276.  
  277. 1.0b1 — 94\12\15?:
  278.   —Initial beta release.
  279.  
  280. */